Operation of BLDC motors may be performed at least in part by a controller. The controller controls the rotor rotation of the BLDC motor based on the position of the rotor relative to the stator coils. In some examples, the controller may use Hall Effect sensors or a rotary encoder to directly measure the position of the rotor. In other examples, the controller may measure the back electromotive force in the undriven coils of the BLDC motor to infer the position of the rotor without separate Hall Effect sensors. In these examples, the controller may be referred to as a “sensor-less” controller, and requires a restart of the BLDC motor.